#include "DataProcess.h"
#include "sys.h" 

//float-4byte转换
union FloatTo4ByteType FloatTo4Byte;

//无符号32Byte数组 小端模式转大端
void uint32SmallToBig(uint8_t* targetInt,uint32_t* sourceShort,uint16_t len){
	uint8_t* sourceByte=(uint8_t *)sourceShort;
	uint16_t i;
	for(i=0;i<len;i++){
		targetInt[i*4]=sourceByte[i*4+3];				//
		targetInt[i*4+1]=sourceByte[i*4+2];
		targetInt[i*4+2]=sourceByte[i*4+1];
		targetInt[i*4+3]=sourceByte[i*4];
	}
}

//数据校验计算
uint8_t dataCount(uint8_t data[],uint16_t datLen){		//dataLen不包含校验位长度
	uint8_t sum=0;
	int i;
	for(i=0;i<datLen;i++){
		sum+=data[i];
	}
	return sum;
}

//数据完整性检查
uint8_t dataCheck(uint8_t data[],uint16_t datLen){		//dataLen不包含校验位长度
	uint8_t sum=0;
	int i;
	for(i=0;i<datLen;i++){
		sum+=data[i];
	}
	if(sum==data[datLen]) return 0;			//验证OK
	//printf("ADD8err check=%x rev=%x\n",sum,data[datLen]);
	return 1;													//验证错误
}

//无符号32bit数据编码为byte数组，大端模式
void uint32Encode(uint8_t stateByte[],uint32_t data){
	stateByte[0]=data>>24&0xFF;
	stateByte[1]=data>>16&0xFF;
	stateByte[2]=data>>8&0xFF;
	stateByte[3]=data&0xFF;
}
